# -*- coding: utf-8 -*-

import scrapy
import json
from ..items import Kr36Item


# 9.	请对以上code 进行注释（5分）
class XinwenSpider(scrapy.Spider):
    name = 'xinwen'
    # 网站链接：https://36kr.com/tags/rengongzhineng
    start_urls = ['https://36kr.com/api/tag/rengongzhineng?page=1&ts=1552008622&per_page=20']
    # 11.	获取前300条数据（5分）
    for page in range(2, 16):
        url = 'https://36kr.com/api/tag/rengongzhineng?page=' + str(page) + '&ts=1552008622&per_page=20'
        start_urls.append(url)

    def parse(self, response):
        all_news = json.loads(response.text)['data']['items']
        for news in all_news:
            # 1.	抓取新闻标题 （5分）
            title = news['title'].replace("<em class='highlight'>", '').replace("</em>", '')
            # 2.	抓取新闻发布时间，并格式化为“yyyy/mm/dd H:M:S”（10分）
            date = news['updated_at'].replace('-', '/').replace('T', ' ')[:-6]
            # 3.	抓取新闻来源 （5分）
            author = news['author']['display_name']
            # 4.	获取新闻导读或简介（5分）
            label = news['summary'].replace("<em class='highlight'>", '').replace("</em>", '')
            # 5.	获取新闻的分类信息（5分）
            types = news['column_name']
            # 6.	获取新闻正文信息（5分）
            content = news['plain_summary'].replace("<em class='highlight'>", '').replace("</em>", '')
            # 7.	获取新闻中的图片信息，然后将图片存到本地（5分）
            image = news['img']
            # 8.	获取新闻的标签或关键词keywords,如果有多个标签或关键词请用“,”将其拼接为一个字符串（10分）
            tags = ','.join(news['tags'])
            # 10.	请将以上数据存入Mongo数据库（5分）
            item = Kr36Item()
            item['title'] = title
            item['date'] = date
            item['author'] = author
            item['label'] = label
            item['types'] = types
            item['content'] = content
            item['image'] = image
            item['tags'] = tags
            yield item
